package com.vibration.baseinfo.service;

import java.util.List;

import com.mathworks.toolbox.javabuilder.MWException;
import com.vibration.baseinfo.domain.TaskCountModel;
import com.vibration.baseinfo.domain.CzCollectionTask;
import com.vibration.common.core.domain.AjaxResult;
import com.vibration.matlab.TransInfo;

/**
 * 任务数据Service接口
 * 
 * @author wu
 * @date 2022-08-11
 */
public interface ICzCollectionTaskService 
{
    /**
     * 查询任务数据
     * 
     * @param id 任务数据主键
     * @return 任务数据
     */
    public CzCollectionTask selectCzCollectionTaskById(Long id) throws Exception;

    /**
     * 查询任务数据列表
     * 
     * @param czCollectionTask 任务数据
     * @return 任务数据集合
     */
    public List<CzCollectionTask> selectCzCollectionTaskList(CzCollectionTask czCollectionTask);

    /**
     * 新增任务数据
     * 
     * @param czCollectionTask 任务数据
     * @return 结果
     */
    public CzCollectionTask insertCzCollectionTask(CzCollectionTask czCollectionTask);

    /**
     * 修改任务数据
     * 
     * @param czCollectionTask 任务数据
     * @return 结果
     */
    public int updateCzCollectionTask(CzCollectionTask czCollectionTask);

    /**
     * 批量删除任务数据
     * 
     * @param ids 需要删除的任务数据主键集合
     * @return 结果
     */
    public int deleteCzCollectionTaskByIds(Long[] ids);

    /**
     * 删除任务数据信息
     * 
     * @param id 任务数据主键
     * @return 结果
     */
    public int deleteCzCollectionTaskById(Long id);

    public Long inversionTask(CzCollectionTask czCollectionTask) throws MWException;

    public List<CzCollectionTask> selectTaskDataListByEquipmentSn(String equipmentSn,String type);

    /**
     * 导出反演数据
     */
    public TransInfo getTransInfoData();

    /**
     * 热源法-计算导热系数
     */
    CzCollectionTask heatConduction(CzCollectionTask collectionTask) throws Exception;


    /**
     * 热比较法-计算导热系数
     */
    CzCollectionTask heatConductionByHeatCompare(CzCollectionTask collectionTask) throws MWException;

    List<TaskCountModel> taskCountByType(Integer type);

    void stopCzCollectionTask(CzCollectionTask czCollectionTask);

    //时域 频域分析
    CzCollectionTask analyse(CzCollectionTask collectionTask) throws Exception;
}
